/*****************************************
**  Nom : SALINAS						**
**	Nom du fichier : ChngAvt			**
**	Descr. : Gestion du chainage avant	**
**										**
**	Date : 30/07/2014				    **
**  Statut: En dvlpmt					**
*****************************************/

/*****************************************
**  Zone de déclaration des Includes    **
*****************************************/

/*****************************************
**  Zone de déclaration des Constantes  **
*****************************************/

/*****************************************
**  Zone de déclaration des Structures  **
*****************************************/

/*****************************************
**  Zone de déclaration des Prototypes  **
*****************************************/

   /*********************************************************************
   **  [Fonction ParcoursConditions]                                   **
   **    Parcours la liste chainée des conditions pour un résultat     **
   **    donné et cherche les maillons correspondant au fait "actuel"  **
   **                                                                  **
   **  In :   char *str : intitulé du fait actuel                      **
   **         ST_RES *res : maillon résultat actuel                    **
   **         ST_COND *pt_Tete : tete liste ch. des conditions         **
   **                                                                  **
   **  Out : /                                                         **
   *********************************************************************/
void ChngAvt_ParcoursConditions(char *str, ST_RES *res,ST_COND *pt_Tete);

   /*********************************************************************
   **  [Fonction ValideCondition]                                      **
   **    Valide la condition si celle-ci est dans les faits            **
   **                                                                  **
   **  In :   ST_RES *res : maillon résultat actuel                    **
   **         ST_COND *pt_Tete : maillon condition actuel              **
   **                                                                  **
   **  Out : /                                                         **
   *********************************************************************/
void ChngAvt_ValideCondition(ST_RES *resultat,ST_COND *condition);

   /*********************************************************************
   **  [Fonction ParcoursResultats]                                    **
   **    Parcours la liste chainée des resultats pour chercher le(s)   **
   **    maillon(s) correspondant au fait "actuel"                     **
   **                                                                  **
   **  In :   char *str : intitulé du fait actuel                      **
   **         ST_RES *pt_Tete : tete liste ch. des résultats           **
   **                                                                  **
   **  Out : /                                                         **
   *********************************************************************/
void ChngAvt_ParcoursResultats(char *str, ST_RES *pt_Tete,int Nb_chain);

   /*********************************************************************
   **  [Fonction ValideResultat]                                       **
   **    Valide le résultat si celui-ci est dans les faits             **
   **                                                                  **
   **  In :   ST_RES *resultat : maillon résultat actuel               **
   **                                                                  **
   **  Out : /                                                         **
   *********************************************************************/
void ChngAvt_ValideResultat(ST_RES *resultat);

   /*********************************************************************
   **  [Fonction BoucleValidation]                                     **
   **    Valide les résultats dont toutes les cond. ont été validées   **
   **                                                                  **
   **  In : /                                                          **
   **                                                                  **
   **  Out : /                                                         **
   *********************************************************************/
void ChngAvt_BoucleValidation (ST_RES* Tete_Res, ST_FAITS* Tete_Faits);

   /*********************************************************************
   **  [Fonction BoucleValidation]                                     **
   **    Lance toutes les fonctions ci-dessus pour effectuer le        **
   **    chainage avant                                                **
   **                                                                  **
   **  In : /                                                          **
   **                                                                  **
   **  Out : /                                                         **
   *********************************************************************/
void ChngAvt_ChainageAvant(ST_RES* Tete_Res, ST_FAITS* Tete_Faits);

